Ergebnis 1 bis 1 von 1

Thema: Jabber|XMPP ChatGPT Bot (LIVE DEMO!)

Hybrid-Darstellung

  1. #1
    Junior
    Registriert
    Mar 2022
    Beiträge
    56
    Gefällt mir!
    8
    Du gefällst: 25

    Cool Jabber|XMPP ChatGPT Bot (LIVE DEMO!)

    Hoi Hoi Szenebox ich wollte euch Heute mal eine kleinere Spielerei von mir vorstellen.
    Ich habe die ChatGPT API mit dem davinci-003 Model mit XMPP/Jabber gekoppelt (leider ohne OTR)

    Mit "reset" könnt ihre eure aktuelle Account gebundene Instanz zurücksetzen


    Wie benutze ich den Bot?
    Einfach [email protected] anschreiben (OTR noch in der mache)


    Beispiel:

    (14:23:32) kickdowncorsa: reset
    (14:23:32) [email protected]: Chatverlauf wurde zurückgesetzt.
    14:50
    (14:53:33) kickdowncorsa: Schreibe eine kurze Vorstellung über einen XMPP Bot der mit Jabber gekoppelt ist DU AI MISTMADE
    (14:53:37) [email protected]: Mein Name ist MistMade und ich bin ein XMPP Bot, der mit Jabber gekoppelt ist. Ich kann Ihnen bei verschiedenen Aufgaben helfen, wie zum Beispiel Nachrichten senden und empfangen, Benutzer suchen und hinzufügen sowie an Chatrooms teilnehmen. Ich bin sehr leistungsstark und benutzerfreundlich. Schau dir meine Funktionen an; du wirst sicher keine Enttäuschung erleben!




    Source Code der live Demo:

    Code:
    import asyncio
    import openai
    from slixmpp import ClientXMPP
    import itertools
    
    API_KEYS = [
        "sk-K3RpApS2OEIxnXQjxxXXXXXXXXXXXXXXXXXXXXXXX",
        "sk-1eZQfxCL5dF2Zwm5RubIXXXXXXXXXXXXXXXXXXXXX"
    ]
    
    api_key_cycle = itertools.cycle(API_KEYS)
    
    JID = "[email protected]"
    PASSWORD = "XXXXXXXXXXXXXXXxx"
    
    class ChatGPTXMPP(ClientXMPP):
        def __init__(self, jid, password):
            super().__init__(jid, password)
            self.add_event_handler("session_start", self.start)
            self.add_event_handler("message", self.message)
            self.chat_histories = {}
    
        async def start(self, event):
            self.send_presence()
            await self.get_roster()
    
        async def message(self, msg):
            if msg["type"] in ("chat", "normal"):
                user_input = msg["body"]
                user_jid = str(msg["from"])
    
                # Verlauf zurücksetzen, wenn der Benutzer "reset" sendet
                if user_input.lower() == "reset":
                    self.reset_chat_history(user_jid)
                    self.send_message(mto=msg["from"], mbody="Chatverlauf wurde zurückgesetzt.", mtype="chat")
                    return
    
                if user_jid not in self.chat_histories:
                    self.chat_histories[user_jid] = []
                self.chat_histories[user_jid].append({"role": "User", "content": user_input})
    
                chatgpt_response = await self.chat_gpt(user_jid, user_input)
                self.chat_histories[user_jid].append({"role": "ChatGPT", "content": chatgpt_response})
                self.send_message(mto=msg["from"], mbody=chatgpt_response, mtype="chat")
    
        def reset_chat_history(self, user_jid):
            if user_jid in self.chat_histories:
                del self.chat_histories[user_jid]
    
        async def chat_gpt(self, user_jid, user_input):
            api_key = next(api_key_cycle)
            openai.api_key = api_key
            print(api_key)
    
            chat_history = self.chat_histories[user_jid]
            prompt = ""
            for message in chat_history:
                prompt += f"{message['role']}: {message['content']}\n"
            prompt += "ChatGPT:"
    
            try:
                response = await asyncio.to_thread(
                    openai.Completion.create,
                    engine="text-davinci-003",
                    prompt=prompt,
                    temperature=0.7,
                    max_tokens=1000,
                    top_p=1,
                    frequency_penalty=1,
                    presence_penalty=1,
                )
                return response.choices[0].text.strip()
            except Exception as e:
                print(f"Error: {e}")
                return "Entschuldigung, es gab einen Fehler bei der Verarbeitung Ihrer Anfrage."
    
    if __name__ == "__main__":
        xmpp = ChatGPTXMPP(JID, PASSWORD)
        xmpp.connect()
        xmpp.process(forever=False)

  2. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. ChatGPT intelligen plugins
    Von murat im Forum Daily Talk & Offtopic
    Antworten: 6
    Letzter Beitrag: 22.01.2023, 19:49
  2. jabber.otr.im offline?
    Von Jana-Maria im Forum Technik / Hardware & Software
    Antworten: 3
    Letzter Beitrag: 06.01.2021, 05:40
  3. Adium ICQ WIM / Alternative zu ICQ / Jabber + OTR
    Von LangerJohnny im Forum Technik / Hardware & Software
    Antworten: 5
    Letzter Beitrag: 30.03.2019, 16:35
  4. GLSL Shader Demo 4K
    Von udg im Forum Exploits, Codes & Tools
    Antworten: 0
    Letzter Beitrag: 25.03.2018, 02:44
  5. neue Demo von Intellitool?
    Von noobee im Forum IntelliTool.it
    Antworten: 2
    Letzter Beitrag: 17.08.2016, 18:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org